home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 27 / CU Amiga Magazine's Super CD-ROM 27 (1998)(EMAP Images)(GB)[!][issue 1998-10].iso / CUCD / PowerPC / vbcc / machines / amigawos / libsrc / _lowlevel.s < prev    next >
Text File  |  1998-08-02  |  967b  |  55 lines

  1. ##
  2. ## vbcc-PowerOpen/WarpOS
  3. ##
  4. ## _lowlevel.s
  5. ## saves the initial system state and implements the lowlevel-exit function
  6. ##
  7. ## v1.0 08.07.98 phx
  8. ##    Deleted definition of @_-symbols. vlink will create them on demand.
  9. ##    vbcc-WarpOS is ready for beta stage.
  10. ## v0.2 10.03.98 phx
  11. ##    Prefix for TOC symbols is "@_" and not "@".
  12. ## v0.1 03.03.98 phx
  13. ##
  14.  
  15.     .text
  16.     .extern    __main
  17.  
  18.  
  19.     .align    3
  20.     .global    __ppc_startup
  21. __ppc_startup:
  22. # r3 = argc
  23. # r4 = argv
  24.     stw    r1,init_stk(r2)        # save initial stack frame
  25.     mflr    r0
  26.     stw    r0,init_lr(r2)        # save initial LR
  27.     stwu    r1,-24(r1)
  28.     bl    __main            # call _main(int argc,char *argv[])
  29.  
  30. # prog. didn't quit by exit, set return code = 0
  31.     li    r3,0
  32.  
  33.     .type    __ppc_startup,@function
  34.     .size    __ppc_startup,$-__ppc_startup
  35.  
  36.  
  37.     .global    __exit
  38. __exit:
  39. # r3 = return code
  40.     lwz    r1,init_stk(r2)
  41.     lwz    r0,init_lr(r2)
  42.     mtlr    r0
  43.     blr                # return to m68k with rc in r3
  44.  
  45.     .type    __exit,@function
  46.     .size    __exit,$-__exit
  47.  
  48.  
  49.     .tocd
  50.  
  51. init_stk:
  52.     .long    0
  53. init_lr:
  54.     .long    0
  55.